package com.cdtye.itps.cms.dao.track.entity;


import com.baomidou.mybatisplus.annotation.*;
import com.cdtye.itps.cms.dao.enums.DelFlagEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.util.Date;

@ApiModel("股道信息")
@TableName("JC_TRACK")
public class JcTrack {
    @ApiModelProperty("股道ID")
    @TableId(
            value = "TRACK_ID",
            type = IdType.ASSIGN_UUID
    )
    private String trackId;
    @ApiModelProperty("起始公里标")
    private Double beginRoad;
    @ApiModelProperty("行别表ID")
    private String directionId;
    @ApiModelProperty("截止公里标")
    private Double endRoad;
    @ApiModelProperty("备注信息")
    private String memo;
    @ApiModelProperty("区间站场ID")
    private String siteId;
    @ApiModelProperty("股道名称")
    private String trackName;
    @ApiModelProperty("股道编号")
    private String trackNo;
    @ApiModelProperty("排序号")
    private Long orderNum;
    @ApiModelProperty("有效长")
    private Long validLength;
    @ApiModelProperty("全长")
    private Long allLength;
    @ApiModelProperty("曲线半径")
    private Long radiusOfCurve;
    @ApiModelProperty("曲线方向")
    private String curveDirection;
    @ApiModelProperty("坡度")
    private Long slope;
    @ApiModelProperty("坡长")
    private Long slopeLength;
    @ApiModelProperty("创建时间")
    @TableField(
            value = "CREATE_DATETIME",
            fill = FieldFill.INSERT
    )
    private Date createDatetime;
    @ApiModelProperty("更新时间")
    @TableField(
            value = "UPDATE_DATETIME",
            fill = FieldFill.INSERT_UPDATE
    )
    private Date updateDatetime;
    @ApiModelProperty("创建人")
    @TableField(
            value = "CREATE_BY",
            fill = FieldFill.INSERT
    )
    private String createBy;
    @ApiModelProperty("更新人")
    @TableField(
            value = "UPDATE_BY",
            fill = FieldFill.INSERT_UPDATE
    )
    private String updateBy;
    @ApiModelProperty("删除标志，Y=是，N=否")
    private String delFlag;

    public JcTrack() {
    }

    public String getTrackId() {
        return this.trackId;
    }

    public Double getBeginRoad() {
        return this.beginRoad;
    }

    public String getDirectionId() {
        return this.directionId;
    }

    public Double getEndRoad() {
        return this.endRoad;
    }

    public String getMemo() {
        return this.memo;
    }

    public String getSiteId() {
        return this.siteId;
    }

    public String getTrackName() {
        return this.trackName;
    }

    public String getTrackNo() {
        return this.trackNo;
    }

    public Long getOrderNum() {
        return this.orderNum;
    }

    public Long getValidLength() {
        return this.validLength;
    }

    public Long getAllLength() {
        return this.allLength;
    }

    public Long getRadiusOfCurve() {
        return this.radiusOfCurve;
    }

    public String getCurveDirection() {
        return this.curveDirection;
    }

    public Long getSlope() {
        return this.slope;
    }

    public Long getSlopeLength() {
        return this.slopeLength;
    }

    public Date getCreateDatetime() {
        return this.createDatetime;
    }

    public Date getUpdateDatetime() {
        return this.updateDatetime;
    }

    public String getCreateBy() {
        return this.createBy;
    }

    public String getUpdateBy() {
        return this.updateBy;
    }

    public String getDelFlag() {
        return this.delFlag;
    }

    public JcTrack setTrackId(String trackId) {
        this.trackId = trackId;
        return this;
    }

    public JcTrack setBeginRoad(Double beginRoad) {
        this.beginRoad = beginRoad;
        return this;
    }

    public JcTrack setDirectionId(String directionId) {
        this.directionId = directionId;
        return this;
    }

    public JcTrack setEndRoad(Double endRoad) {
        this.endRoad = endRoad;
        return this;
    }

    public JcTrack setMemo(String memo) {
        this.memo = memo;
        return this;
    }

    public JcTrack setSiteId(String siteId) {
        this.siteId = siteId;
        return this;
    }

    public JcTrack setTrackName(String trackName) {
        this.trackName = trackName;
        return this;
    }

    public JcTrack setTrackNo(String trackNo) {
        this.trackNo = trackNo;
        return this;
    }

    public JcTrack setOrderNum(Long orderNum) {
        this.orderNum = orderNum;
        return this;
    }

    public JcTrack setValidLength(Long validLength) {
        this.validLength = validLength;
        return this;
    }

    public JcTrack setAllLength(Long allLength) {
        this.allLength = allLength;
        return this;
    }

    public JcTrack setRadiusOfCurve(Long radiusOfCurve) {
        this.radiusOfCurve = radiusOfCurve;
        return this;
    }

    public JcTrack setCurveDirection(String curveDirection) {
        this.curveDirection = curveDirection;
        return this;
    }

    public JcTrack setSlope(Long slope) {
        this.slope = slope;
        return this;
    }

    public JcTrack setSlopeLength(Long slopeLength) {
        this.slopeLength = slopeLength;
        return this;
    }

    public JcTrack setCreateDatetime(Date createDatetime) {
        this.createDatetime = createDatetime;
        return this;
    }

    public JcTrack setUpdateDatetime(Date updateDatetime) {
        this.updateDatetime = updateDatetime;
        return this;
    }

    public JcTrack setCreateBy(String createBy) {
        this.createBy = createBy;
        return this;
    }

    public JcTrack setUpdateBy(String updateBy) {
        this.updateBy = updateBy;
        return this;
    }

    public JcTrack setDelFlag(String delFlag) {
        this.delFlag = delFlag;
        return this;
    }

    public boolean equals(Object o) {
        if (o == this) {
            return true;
        } else if (!(o instanceof JcTrack)) {
            return false;
        } else {
            JcTrack other = (JcTrack)o;
            if (!other.canEqual(this)) {
                return false;
            } else {
                label251: {
                    Object this$trackId = this.getTrackId();
                    Object other$trackId = other.getTrackId();
                    if (this$trackId == null) {
                        if (other$trackId == null) {
                            break label251;
                        }
                    } else if (this$trackId.equals(other$trackId)) {
                        break label251;
                    }

                    return false;
                }

                Object this$beginRoad = this.getBeginRoad();
                Object other$beginRoad = other.getBeginRoad();
                if (this$beginRoad == null) {
                    if (other$beginRoad != null) {
                        return false;
                    }
                } else if (!this$beginRoad.equals(other$beginRoad)) {
                    return false;
                }

                Object this$directionId = this.getDirectionId();
                Object other$directionId = other.getDirectionId();
                if (this$directionId == null) {
                    if (other$directionId != null) {
                        return false;
                    }
                } else if (!this$directionId.equals(other$directionId)) {
                    return false;
                }

                label230: {
                    Object this$endRoad = this.getEndRoad();
                    Object other$endRoad = other.getEndRoad();
                    if (this$endRoad == null) {
                        if (other$endRoad == null) {
                            break label230;
                        }
                    } else if (this$endRoad.equals(other$endRoad)) {
                        break label230;
                    }

                    return false;
                }

                label223: {
                    Object this$memo = this.getMemo();
                    Object other$memo = other.getMemo();
                    if (this$memo == null) {
                        if (other$memo == null) {
                            break label223;
                        }
                    } else if (this$memo.equals(other$memo)) {
                        break label223;
                    }

                    return false;
                }

                label216: {
                    Object this$siteId = this.getSiteId();
                    Object other$siteId = other.getSiteId();
                    if (this$siteId == null) {
                        if (other$siteId == null) {
                            break label216;
                        }
                    } else if (this$siteId.equals(other$siteId)) {
                        break label216;
                    }

                    return false;
                }

                Object this$trackName = this.getTrackName();
                Object other$trackName = other.getTrackName();
                if (this$trackName == null) {
                    if (other$trackName != null) {
                        return false;
                    }
                } else if (!this$trackName.equals(other$trackName)) {
                    return false;
                }

                label202: {
                    Object this$trackNo = this.getTrackNo();
                    Object other$trackNo = other.getTrackNo();
                    if (this$trackNo == null) {
                        if (other$trackNo == null) {
                            break label202;
                        }
                    } else if (this$trackNo.equals(other$trackNo)) {
                        break label202;
                    }

                    return false;
                }

                Object this$orderNum = this.getOrderNum();
                Object other$orderNum = other.getOrderNum();
                if (this$orderNum == null) {
                    if (other$orderNum != null) {
                        return false;
                    }
                } else if (!this$orderNum.equals(other$orderNum)) {
                    return false;
                }

                label188: {
                    Object this$validLength = this.getValidLength();
                    Object other$validLength = other.getValidLength();
                    if (this$validLength == null) {
                        if (other$validLength == null) {
                            break label188;
                        }
                    } else if (this$validLength.equals(other$validLength)) {
                        break label188;
                    }

                    return false;
                }

                Object this$allLength = this.getAllLength();
                Object other$allLength = other.getAllLength();
                if (this$allLength == null) {
                    if (other$allLength != null) {
                        return false;
                    }
                } else if (!this$allLength.equals(other$allLength)) {
                    return false;
                }

                Object this$radiusOfCurve = this.getRadiusOfCurve();
                Object other$radiusOfCurve = other.getRadiusOfCurve();
                if (this$radiusOfCurve == null) {
                    if (other$radiusOfCurve != null) {
                        return false;
                    }
                } else if (!this$radiusOfCurve.equals(other$radiusOfCurve)) {
                    return false;
                }

                label167: {
                    Object this$curveDirection = this.getCurveDirection();
                    Object other$curveDirection = other.getCurveDirection();
                    if (this$curveDirection == null) {
                        if (other$curveDirection == null) {
                            break label167;
                        }
                    } else if (this$curveDirection.equals(other$curveDirection)) {
                        break label167;
                    }

                    return false;
                }

                label160: {
                    Object this$slope = this.getSlope();
                    Object other$slope = other.getSlope();
                    if (this$slope == null) {
                        if (other$slope == null) {
                            break label160;
                        }
                    } else if (this$slope.equals(other$slope)) {
                        break label160;
                    }

                    return false;
                }

                Object this$slopeLength = this.getSlopeLength();
                Object other$slopeLength = other.getSlopeLength();
                if (this$slopeLength == null) {
                    if (other$slopeLength != null) {
                        return false;
                    }
                } else if (!this$slopeLength.equals(other$slopeLength)) {
                    return false;
                }

                Object this$createDatetime = this.getCreateDatetime();
                Object other$createDatetime = other.getCreateDatetime();
                if (this$createDatetime == null) {
                    if (other$createDatetime != null) {
                        return false;
                    }
                } else if (!this$createDatetime.equals(other$createDatetime)) {
                    return false;
                }

                label139: {
                    Object this$updateDatetime = this.getUpdateDatetime();
                    Object other$updateDatetime = other.getUpdateDatetime();
                    if (this$updateDatetime == null) {
                        if (other$updateDatetime == null) {
                            break label139;
                        }
                    } else if (this$updateDatetime.equals(other$updateDatetime)) {
                        break label139;
                    }

                    return false;
                }

                Object this$createBy = this.getCreateBy();
                Object other$createBy = other.getCreateBy();
                if (this$createBy == null) {
                    if (other$createBy != null) {
                        return false;
                    }
                } else if (!this$createBy.equals(other$createBy)) {
                    return false;
                }

                Object this$updateBy = this.getUpdateBy();
                Object other$updateBy = other.getUpdateBy();
                if (this$updateBy == null) {
                    if (other$updateBy != null) {
                        return false;
                    }
                } else if (!this$updateBy.equals(other$updateBy)) {
                    return false;
                }

                Object this$delFlag = this.getDelFlag();
                Object other$delFlag = other.getDelFlag();
                if (this$delFlag == null) {
                    if (other$delFlag != null) {
                        return false;
                    }
                } else if (!this$delFlag.equals(other$delFlag)) {
                    return false;
                }

                return true;
            }
        }
    }

    protected boolean canEqual(Object other) {
        return other instanceof JcTrack;
    }

    public int hashCode() {
        int result = 1;
        Object $trackId = this.getTrackId();
        result = result * 59 + ($trackId == null ? 43 : $trackId.hashCode());
        Object $beginRoad = this.getBeginRoad();
        result = result * 59 + ($beginRoad == null ? 43 : $beginRoad.hashCode());
        Object $directionId = this.getDirectionId();
        result = result * 59 + ($directionId == null ? 43 : $directionId.hashCode());
        Object $endRoad = this.getEndRoad();
        result = result * 59 + ($endRoad == null ? 43 : $endRoad.hashCode());
        Object $memo = this.getMemo();
        result = result * 59 + ($memo == null ? 43 : $memo.hashCode());
        Object $siteId = this.getSiteId();
        result = result * 59 + ($siteId == null ? 43 : $siteId.hashCode());
        Object $trackName = this.getTrackName();
        result = result * 59 + ($trackName == null ? 43 : $trackName.hashCode());
        Object $trackNo = this.getTrackNo();
        result = result * 59 + ($trackNo == null ? 43 : $trackNo.hashCode());
        Object $orderNum = this.getOrderNum();
        result = result * 59 + ($orderNum == null ? 43 : $orderNum.hashCode());
        Object $validLength = this.getValidLength();
        result = result * 59 + ($validLength == null ? 43 : $validLength.hashCode());
        Object $allLength = this.getAllLength();
        result = result * 59 + ($allLength == null ? 43 : $allLength.hashCode());
        Object $radiusOfCurve = this.getRadiusOfCurve();
        result = result * 59 + ($radiusOfCurve == null ? 43 : $radiusOfCurve.hashCode());
        Object $curveDirection = this.getCurveDirection();
        result = result * 59 + ($curveDirection == null ? 43 : $curveDirection.hashCode());
        Object $slope = this.getSlope();
        result = result * 59 + ($slope == null ? 43 : $slope.hashCode());
        Object $slopeLength = this.getSlopeLength();
        result = result * 59 + ($slopeLength == null ? 43 : $slopeLength.hashCode());
        Object $createDatetime = this.getCreateDatetime();
        result = result * 59 + ($createDatetime == null ? 43 : $createDatetime.hashCode());
        Object $updateDatetime = this.getUpdateDatetime();
        result = result * 59 + ($updateDatetime == null ? 43 : $updateDatetime.hashCode());
        Object $createBy = this.getCreateBy();
        result = result * 59 + ($createBy == null ? 43 : $createBy.hashCode());
        Object $updateBy = this.getUpdateBy();
        result = result * 59 + ($updateBy == null ? 43 : $updateBy.hashCode());
        Object $delFlag = this.getDelFlag();
        result = result * 59 + ($delFlag == null ? 43 : $delFlag.hashCode());
        return result;
    }

    public String toString() {
        return "JcTrack(trackId=" + this.getTrackId() + ", beginRoad=" + this.getBeginRoad() + ", directionId=" + this.getDirectionId() + ", endRoad=" + this.getEndRoad() + ", memo=" + this.getMemo() + ", siteId=" + this.getSiteId() + ", trackName=" + this.getTrackName() + ", trackNo=" + this.getTrackNo() + ", orderNum=" + this.getOrderNum() + ", validLength=" + this.getValidLength() + ", allLength=" + this.getAllLength() + ", radiusOfCurve=" + this.getRadiusOfCurve() + ", curveDirection=" + this.getCurveDirection() + ", slope=" + this.getSlope() + ", slopeLength=" + this.getSlopeLength() + ", createDatetime=" + this.getCreateDatetime() + ", updateDatetime=" + this.getUpdateDatetime() + ", createBy=" + this.getCreateBy() + ", updateBy=" + this.getUpdateBy() + ", delFlag=" + this.getDelFlag() + ")";
    }
}
